package framework;

/**
 * 工厂方法相当于 模板方法设计模式的一个典型应用，create方法定义了 模板方法的执行流程，
 * 流程中具体的方法 createProduct 和 registerProduct 由其子类实现
 */
public abstract class Factory {

    public Product create(String owner){
        Product product = createProduct(owner);
        registerProduct(product);
        return product;
    }

    protected abstract Product createProduct(String owner);
    protected abstract void registerProduct(Product product);

}
